package tfc_editor.OffLFileManagement;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import javax.swing.JTextArea;

/**
 * Classe que s'encarrega d'escriure un fitxer de forma offline, es a dir, al disc dur de l'usuari.
 * @author Ismael Gonzalez Burgos.
 *
 */
public class OffLineFileWriter
{
	/**
	 * Constructor per defecte de la classe.
	 */
	public OffLineFileWriter()
	{
		
	}
	
	/**
	 * Funcio que escriu un fitxer llegint-ho de l'editor al disc dur de l'usuari.
	 * @param output JTextArea amb el fitxer editat que volem guardar.
	 * @param f File amb el nom del fitxer a guardar.
	 * @return Si tot ha anat be o no.
	 */
	public boolean WriteFile(JTextArea output,File f)
	{
		try
		{
			BufferedWriter bw = new BufferedWriter(new FileWriter(f.getAbsoluteFile()));
			for (int i=0;i<output.getLineCount();i++)
			{
				// Cada linea, la guardem al fitxer.
				
				// Primer, la llegim.
				int start = output.getLineStartOffset(i);
				int end = output.getLineEndOffset(i);
				String Line = output.getText(start,end-start);
				
				// We have to avoid writing 2 line separators.
				if (Line.endsWith("\n"))
				{
					Line = Line.substring(0,end-(start+1));
				}
				bw.write(Line);
				bw.newLine();
			}

			bw.close();
		} catch (Exception e)
		{
			e.printStackTrace();
		}
		
		return true;
	}
}
